package cn.itsub.boot.interceptor;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 */
@Slf4j
@Component
public class CommonInterceptor implements HandlerInterceptor {

	@Value("${spring.profiles.active}")
	String profile;

	// 在请求处理之前进行调用（Controller方法调用之前）
	@Override
	public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object object) throws Exception {

		//添加全局属性，可以在ftl模板中使用，例如 ${ctx}
		request.setAttribute("APP_ENV",profile);
		request.setAttribute("ctx", request.getContextPath());

		return true;//进入controller
	}

	// 在请求处理之后视图被渲染之前进行调用（Controller方法调用之后）
	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
		log.debug("postHandle...");
	}

	// 在请求结束之后、也就是视图被渲染之后进行调用（主要是用于进行资源清理工作）
	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
		log.debug("afterCompletion...");
	}
}
